feat(cosmos): constellation star maps + 11-card encyclopedia wave (v2) - #37
Conversation
- /cosmos/constellations: deterministic SVG sky maps (real J2000 RA/Dec, zero client JS) for Orion, Ursa Major, Crux, Cassiopeia — each chart read in three labeled layers: science / myth / navigation - Encyclopedia 19 → 30 cards: 4 constellations, 3 named stars (Betelgeuse, Sirius, Proxima Centauri), 2 spacecraft (Voyager 1, ISS), 2 concepts (Fusion on Earth, What Stars Teach) - New card kinds: constellation, spacecraft (registry now 12 kinds) - Dual-track prompts on every new card: systems lens + research trail + story seed — one substrate serving research and worldbuilding - Hub nav: fourth view tile (Star Maps); sitemap + featured refresh - Spec: docs/superpowers/specs/2026-07-13-cosmos-platform-expansion.md (phased plan: MCP surface, site agent, Expo app, monetization options) Built on SIP. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HQB4GCtCMEZYwKZ1dzz9T9
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 51 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (18)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request expands the Starlight Cosmos platform by adding new content cards for constellations, spacecraft, stars, and concepts, along with a platform expansion spec. It introduces a new "Star Maps" visual exploration surface featuring deterministic SVG sky maps rendered via a new ConstellationMap server component. Feedback on the changes suggests adding a defensive guard check in ConstellationMap to prevent potential division-by-zero errors if a constellation is loaded with an empty stars array.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| constellation: Constellation; | ||
| seed?: number; | ||
| }) { | ||
| const { stars, lines } = constellation; |
There was a problem hiding this comment.
To prevent potential division-by-zero errors and rendering issues (resulting in NaN values for coordinates and scale) if a constellation is loaded with an empty stars array, we should add a defensive guard check at the beginning of the component.
| const { stars, lines } = constellation; | |
| const { stars, lines } = constellation; | |
| if (!stars || stars.length === 0) { | |
| return null; | |
| } |
Review finding (PR #37): centroid math divides by stars.length — an empty array would render a NaN-coordinate SVG. Return null instead. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HQB4GCtCMEZYwKZ1dzz9T9
portfolio-mesh.yaml was hand-written by the 2026-07-25 audit and started rotting immediately — 42 repos where 45 existed, 179 ACOS skills where another sweep counted 117, 16 human-mind schemas where 15 exist. Every figure was "right" under a different unstated counting rule. Splits it into a curated half (mesh.curated.json — role, status, notes, gaps; numbers banned) and a measured half derived from the filesystem under an explicit counting contract, with the published mesh as a generated artifact CI refuses to let drift. This is the same derive-and-assert shape as check-agent-harness.mjs, which is the pattern worth propagating: a claim that cannot drift because the build refuses. Includes a fix to the drift guard found in review — --check re-stamps measured_at on every run, so as authored the new CI step would have failed on every PR from the day after merge with nothing measured differently. measured_at is now stripped before comparison for the same reason generated_at already was. Verified against a CI-shaped checkout (passes) and against a tampered count (still fails), so the guard keeps its teeth. Verified on an integration branch with #37, #61 and #68: tsc clean, agent harness passes, 144 agent profiles and 88 skills conform, npm test 34 pass / 0 fail, site build completes.
Adds the Foundry skill domain — skills-first capability compilation, agent necessity gates, bounded system packaging, executable taste evaluation — taking the activation surface from 84 to 88 rules across 17 domains, with the platform adapters (Claude, Codex, Cursor, Cline, Gemini, Antigravity) and the command system updated in the same change so no surface disagrees with another. The reason this merges without a separate reconciliation pass: the change is self-verifying. skill-rules.json carries 88 rules, metrics/current.json records 88 with 35 dir-format + 53 flat-format, and check-agent-harness.mjs asserts all of it and fail-closes on drift. The counts in CLAUDE.md, AGENTS.md, README and every adapter were moved together rather than left to drift apart — which is the failure this repo has been paying for elsewhere. Verified on an integration branch with #37, #67 and #68: tsc clean, harness passes at agents=144 skills=88 v8.3.0, 144 agent profiles and 88 skills conform, npm test 34 pass / 0 fail, site build completes.
There was a problem hiding this comment.
Pull request overview
Adds the next “Cosmos” wave by introducing a new constellations surface (deterministic SVG star maps) and expanding the Cosmos knowledge-card registry with new constellation/star/spacecraft/concept content, plus a roadmap spec doc capturing the phased platform plan.
Changes:
- Added
/cosmos/constellationswith server-rendered constellation maps and Science/Myth/Navigation layers. - Expanded the Cosmos card registry with two new kinds (
constellation,spacecraft) and 11 new cards (19 → 30). - Wired the new surface into the Cosmos hub and sitemap; added a platform expansion spec doc.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| site/src/lib/cosmos/constellations.ts | New constellation dataset (stars, stick-figure lines, and 3-layer copy) and lookup map. |
| site/src/lib/cosmos/cards.ts | Adds new card kinds + labels/accents, adds 11 new cards, updates kind order and featured picks. |
| site/src/components/cosmos/ConstellationMap.tsx | New deterministic SVG constellation map renderer (projection + seeded background stars). |
| site/src/app/sitemap.ts | Adds /cosmos/constellations to static routes. |
| site/src/app/cosmos/page.tsx | Updates Cosmos hub “views” section to include the new Star Maps tile. |
| site/src/app/cosmos/constellations/page.tsx | New constellations index page rendering maps + 3-layer descriptions + card links. |
| site/content/cosmos/orion.md | New knowledge-card body. |
| site/content/cosmos/ursa-major.md | New knowledge-card body. |
| site/content/cosmos/crux.md | New knowledge-card body. |
| site/content/cosmos/cassiopeia.md | New knowledge-card body. |
| site/content/cosmos/betelgeuse.md | New knowledge-card body. |
| site/content/cosmos/sirius.md | New knowledge-card body. |
| site/content/cosmos/proxima-centauri.md | New knowledge-card body. |
| site/content/cosmos/voyager-1.md | New knowledge-card body. |
| site/content/cosmos/iss.md | New knowledge-card body. |
| site/content/cosmos/fusion-on-earth.md | New knowledge-card body. |
| site/content/cosmos/star-wisdom.md | New knowledge-card body. |
| docs/superpowers/specs/2026-07-13-cosmos-platform-expansion.md | New phased platform expansion spec (workstreams + sequencing + monetization options). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| const ra0 = stars.reduce((s, st) => s + st.ra, 0) / stars.length; | ||
| const dec0 = stars.reduce((s, st) => s + st.dec, 0) / stars.length; | ||
| const cosD = Math.cos((dec0 * Math.PI) / 180); | ||
|
|
||
| const raw = stars.map((s) => ({ | ||
| ...s, | ||
| px: -(s.ra - ra0) * 15 * cosD, | ||
| py: -(s.dec - dec0), | ||
| })); |
| > | ||
| Read the {c.name.split(" ")[0]} knowledge card → | ||
| </Link> |
What this ships
The next wave of Starlight Cosmos, extending the 2026-06-11 design spec — the encyclopedia grows, the first visual-exploration surface lands, and the platform vision is captured as a phased plan.
New surface:
/cosmos/constellations/cosmoshub (fourth view tile: "Star Maps") and the sitemap.Encyclopedia: 19 → 30 cards
constellation,spacecraft(registry now spans 12 kinds).Plan doc
docs/superpowers/specs/2026-07-13-cosmos-platform-expansion.md— phased, falsifiable roadmap for the larger vision: Cosmos MCP instarlight-cosmos-engine, embedded site agent, Expo/desktop apps, network visualization, and monetization options with a recommendation (templates now, subscription when the agent exists).Verification
npm run lint— 0 errors (pre-existing warnings only, untouched files)npm run build— green;/cosmos/constellationsprerendered, all 30 card pages SSG'd##sections, closing "Why it matters to a builder")Built on SIP.
🤖 Generated with Claude Code
https://claude.ai/code/session_01HQB4GCtCMEZYwKZ1dzz9T9
Generated by Claude Code